package negocio;

import controladoresJPA.ConsumibleJpaController;
import controladoresJPA.PersonaJpaController;
import java.util.List;
import javax.annotation.Resource;
import javax.ejb.EJBContext;
import javax.ejb.Stateless;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;
import javax.inject.Named;
import javax.persistence.NoResultException;
import modelo.Consumible;
import modelo.Direccion;
import modelo.Persona;
import modelo.PersonaContacto;

@Named("consumibleBI")
@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class ConsumibleBI {
    @Resource
    private EJBContext eJBContext;
    
    public void crear(Consumible consumible) throws Exception{
        try{
            ConsumibleJpaController consumibleJpaController = new ConsumibleJpaController(eJBContext.getUserTransaction(), 
                    EFServicio.getEmf());
            consumibleJpaController.altaConsumible(consumible);     
        }catch(Exception e){
            e.printStackTrace();
            throw new Exception("Error al crear el consumible");
        }
    }
    
    public List<Consumible> buscarConsumiblesPorUsuario(Integer idUsuario) throws Exception {
        try{
            ConsumibleJpaController cjc = new ConsumibleJpaController(eJBContext.getUserTransaction(), EFServicio.getEmf());
            List<Consumible> conUsu = cjc.findConsumiblesByIdUsuario(idUsuario);
            return conUsu;
        }catch(NoResultException nre){
            return null;
        }catch(Exception e){
            e.printStackTrace();
            throw new Exception("Error al buscar los consumibles");
        }
    }
    
    public Consumible buscarConsumiblesPorIdConsumible(Integer idConsumible) throws Exception {
        try{
            ConsumibleJpaController cjc = new ConsumibleJpaController(eJBContext.getUserTransaction(), EFServicio.getEmf());
            Consumible consumible = cjc.findConsumible(idConsumible);
            return consumible;
        }catch(NoResultException nre){
            return null;
        }catch(Exception e){
            e.printStackTrace();
            throw new Exception("Error al buscar el consumible");
        }
    }
}
